package XML;




import modelo.jugador.Jugador;
import modelo.tablero.Ciudad;
import modelo.vehiculos.Auto;
import modelo.vehiculos.Camioneta;
import modelo.vehiculos.Moto;
import modelo.vehiculos.Posicion;
import modelo.vehiculos.Vehiculo;

import org.jdom.Document;
import org.jdom.Element;
import org.jdom.input.SAXBuilder;

public class LectorVehiculoXml extends GeneradorDeMapaXml {
	Element nodoAux;
	Vehiculo unVehiculo;
public LectorVehiculoXml(String archivo){
		try{
			SAXBuilder constructor = new SAXBuilder();
			Document doc = constructor.build(archivo);
			Element raiz = doc.getRootElement();
			nodoAux = raiz.getChild("Jugador");
			Jugador unJugador = new Jugador(nodoAux.getAttributeValue("Nombre"));
			unJugador.aumentarMovsEn(Integer.parseInt(nodoAux.getAttributeValue("Puntaje")));
			unVehiculo = crearVehiculo(raiz , unJugador);
			
		}catch (Exception e){
			System.out.println(e.getMessage());
		}
	}
	private Vehiculo crearVehiculo(Element nodoVehiculo , Jugador jugador ){
		
		String tipoDeVehiculo = nodoVehiculo.getAttributeValue("TipoDeVehiculo");
		Vehiculo nuevoVehiculo;
		Element nodoPosicion = nodoVehiculo.getChild("Posicion");
		int coordenadaX,coordenadaY;
		coordenadaX = Integer.parseInt(nodoPosicion.getAttributeValue("CoordenadaX") );
		coordenadaY = Integer.parseInt(nodoPosicion.getAttributeValue("CoordenadaY") );
		Posicion posicion = new Posicion(coordenadaX , coordenadaY);
		
		Ciudad mapa = crearMapa(nodoVehiculo.getChild("Mapa"));
		
/*		switch (tipoDeVehiculo){
		case "Moto":
			
			Moto moto = new Moto(mapa , posicion , jugador);
			return moto;
		case "Auto":
			
			Auto auto = new Auto(mapa , posicion , jugador);
			return auto;
		case "Camioneta":
			
			Camioneta camioneta = new Camioneta(mapa , posicion , jugador);
			return camioneta;
		
		}
		return null;
*/		nuevoVehiculo = new Camioneta(mapa , posicion , jugador);
		if(tipoDeVehiculo.equals("Moto")) nuevoVehiculo = new Moto(mapa , posicion , jugador);
		if(tipoDeVehiculo.equals("Auto")) nuevoVehiculo= new Auto(mapa , posicion , jugador);
		
		return nuevoVehiculo;
	}
	
	public Ciudad crearMapa(Element nodoCiudad){
		return super.crearMapa(nodoCiudad);
	
	}
	
	public Vehiculo getVehiculo(){
		return unVehiculo;
	}
}
